<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>值引用类型转换</title>
</head>
<body>
    
</body>
<script>
    var str="acbde";
    var o=new String("xyz");

    function newStr(){
        return "新的字符串";
    }
    function func(t){
        t.toString=newStr;
    }

    func(str)   //值不会改变
    func(o)     //值会改变
    // alert(str)
    // alert(o)

    str.price=800;
    console.log(str.price);//undefined
    o.price=800;
    console.log(o.price);   //800

    //运算符
    var str1="test";  //值
    var obj={} ; //空对象
    var x=obj||str1;//x值不是true而是有值就取不为空的第一个
    // alert(x)
    var y=obj&&str1;//x值不是false而是取最后一个   如果有其中一个为空则为空
    // alert(y)

    var a="abc";
    var b=new String("abc");
    var c=b;
    console.log(a==b)   //判断内容是否相等
    console.log(c===b); //判断地址是否相等
    //运算符优先级
 //   alert(void 1+2);//NaN
    var i=100;
 //   alert((i+=20,i *=2,'value: '+i));   //240   从左往右
    //with
    var obj1=new Object();
    obj1.name="temo";
    obj1.age=18;
    obj1.hi=function(){
        alert("我名字");
    }
    with(obj1){
        name="德玛";
        age=16;
        hi();
    }
    console.log(obj1);
    //逗号的二义性
    /*
    var num1=(1,2,3);
    alert(num1) //3
    num1=1,2,3
    alert(num1) //1
    num1=[1,2,(3,4,5),6]
    alert(num1)//1,2,5,6
    */
    //作业循环生成3*4表格
    var homework=[
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12]    
    ]
    var tab=document.createElement("table");
    tab.border="1px";
    tab.width="50%";
    for(let i=0;i<homework.length;i++){
        var tr=tab.insertRow(tab.rows.length);
        for(let j=0;j<homework[i].length;j++){
            var td=tr.insertCell(tr.cells.length);
            td.innerText=homework[i][j];
        }
    }
    document.body.appendChild(tab);
   
</script>
</html>